package com.wz.utils.generic;

import java.util.List;

/**
 * 向这个 List 添加一个 Apple 或者其子类型的对象是安全的，
 * 这些对象都可以向上转型为 Apple。
 */
public class SuperTypeWildcards {
    static void writeTo(List<? super Apple> apples) {
        apples.add(new Apple());
        apples.add(new Jonathan());
        // apples.add(new Fruit()); // Error
    }

    public static <T> void copy(List<? super T> dest, List<? extends T> src) {
        for (int i=0; i<src.size(); i++)
            dest.set(i,src.get(i));
    }
}